#include<bits/stdc++.h>
using namespace std;
const int N=100009;
int T,n1,n2,c1,c2,nCover,d[N];
struct Cover{int date,num;};
int F(int m){
    //变量m表示购买的干净桌布还剩几张没用过
    int cost=0;
    deque<Cover> q1,q2;
    //在贪心算法下c1<=c2,n1>n2
    //-------(i-n1)-(i-n1+1)-----(i-n2)------i-----------
    //-------- n1  - (n1-1)--------n2--------i(今天)------
    //\-----------/ \-----------------/\--------------------
    //     q1               q2              不能使用
    //容器q1维护前n1天及以前使用过但还没定清洗方案的桌布信息
    //容器q2维护前n2天到前n1-1天使用过但还没定清洗方案的桌布信息
    for(int i=1;i<=T;i++){
        int demand=d[i];//demand指需要使用的干净桌布
        int cnt=min(demand,m);//先从剩余的干净桌布里使用
        demand-=cnt,m-=cnt;
        if(i-n2>0) q2.push_back((Cover){i-n2,d[i-n2]});//前n2天的桌布可以使用了
        while(!q2.empty()){//q2容器里较早桌布导入q1
            
        }
        while(!q1.empty()&&demand){//q1容器里属于较早桌布,确定清洗方案1
            
        }
        while(!q2.empty()&&demand){//q2容器里属于较晚桌布,确定清洗方案2

        }
        if(demand) return -1;
    }
    return cost;
}
int main(){
    //freopen("tablecloth.in","r",stdin);
    //freopen("tablecloth.out","w",stdout);
    cin>>T>>n1>>n2>>c1>>c2>>nCover;
    for(int i=1;i<=T;i++) cin>>d[i];
    //贪心法
    //优先使用没用过的干净桌布  费用为0
    //再使用便宜的清洗方案      费用为c1
    //最后使用贵的清洗方案      费用为c2
    if(c1>c2){swap(n1,n2);swap(c1,c2)};
    if(n1<=n2){c2=c1;n2=n1;}
    return 0;
}